package com.xh.bussiness.course.service;

import com.xh.bussiness.course.bean.dto.CourseDto;
import com.xh.bussiness.course.bean.dto.PrepareLessonsInfoDto;
import com.xh.bussiness.course.bean.request.CourseIndexRequest;
import com.xh.bussiness.course.model.CourseIndex;
import com.xh.bussiness.resource.bean.dto.MaterialDto;
import com.xh.bussiness.resource.model.Material;
import com.xh.core.service.IBaseService;
import java.util.Date;
import java.util.List;
import java.util.Map;

public interface ICourseIndexService extends IBaseService<CourseIndex> {

    public List query(CourseIndexRequest bean);

    boolean add(CourseIndexRequest bean);

    boolean modify(CourseIndexRequest bean);

    String batchSave(List<CourseIndexRequest> courseIndexRequestList);

    String batchUpdateCourseIndex(List<CourseIndexRequest> courseIndexRequestList);

    CourseDto queryOne(String id);

    // 备课排名
    List<PrepareLessonsInfoDto> prepareLessonsRank(Date beginQueryTime, Date endQueryTime, int limit);

    // 备课排名（我的排名）
    int myPrepareLessonsRank(Date beginQueryTime, Date endQueryTime, String userId);

    boolean modifyCourseIndexUpOrDown(String courseIndexId, Integer moveType);

    boolean deleteCourseIndex(String courseIndexId);

    boolean batchDeleteCourseIndex(List<String> ids);

    String deleteMaterial(Integer type, String courseIndexId, String materialId);

    String batchModify(List<CourseIndexRequest> bean);

    Map<String,Object> queryMaterials(String courseIndexId);

    String addMaterials(String courseIndexId, String materialId);

    String addPaper(String courseIndexId, String paperId);

    boolean clearAllMaterial(String courseIndexId);

    String clearAll(String courseId);
}
